package main

import (
	"context"
	"fmt"
	"go-sentinel-demo/proto"
	"google.golang.org/grpc"
	"net"
)

type GreeterServer struct {
}

func (h GreeterServer) SayHello(ctx context.Context, in *proto.HelloRequest) (*proto.HelloResponse, error) {
	// 接收客户端发送过来的数据，打印出来
	fmt.Println("客户端传入的名字是：", in.Name)
	fmt.Println("客户端传入的年龄是：", in.Age)

	// 返回给客户端
	return &proto.HelloResponse{
		Reply: "服务端给你回复",
	}, nil
}

// 服务端代码
func main() {
	// 第一步：new一个server
	g := grpc.NewServer()
	// 第二步：生成一个结构体对象
	s := GreeterServer{}
	// 第三步: 把s注册到g对象中
	proto.RegisterGreeterServer(g, &s)
	// 第四步：启动服务，监听端口
	lis, err := net.Listen("tcp", "0.0.0.0:50052")
	if err != nil {
		panic("启动服务异常")
	}
	_ = g.Serve(lis)
}
